package com.vinny.springbootflowable2.service;

import com.vinny.springbootflowable2.model.dto.ExpenseDTO;
import com.vinny.springbootflowable2.model.vo.ProcessDiagramVO;
import org.flowable.task.api.Task;

import java.util.List;

/**
 * 报销流程服务
 */
public interface ExpenseService {
    /**
     * 提交报销申请
     */
    String submitExpense(String userId, ExpenseDTO expenseDTO);

    /**
     * 获取用户的任务列表
     */
    List<Task> getUserTasks(String userId);

    /**
     * 审批通过
     */
    void approveTask(String userId, String taskId);

    /**
     * 驳回任务
     */
    void rejectTask(String userId, String taskId);

    /**
     * 完成任务
     */
    void completeTask(String userId, String taskId);

    /**
     * 生成流程图
     */
    byte[] generateProcessDiagram(String processId);

    /**
     * 获取带高亮的流程图信息
     */
    ProcessDiagramVO getProcessDiagramInfo(String processId);

    /**
     * 获取流程节点信息
     */
    List<String> getProcessNodeInfo(String processId);
} 